When you use invoice payment, you need to mark the final delivery. This is essential to make the payment due and calculate the due date. You must also do this when using auto_capture. You can make this by hand using SecuOffice or via the secuconnect API.

Marketplaces with mixed baskets have multiple Payment Transactions per Smart Transaction. Please refer to Mixed Baskets Transactions for Marketplaces if relevant.

The API endpoint for wanting capture is POST /Payment/Transactions/{id}/capture:

Request
POST /api/v2/Payment/Transactions/PCI_527D8SYFCT6GJ0994MNSY248W8MCM7/capture HTTP/1.1
Host: connect-testing.secuconnect.com
Authorization: Bearer qb56tjj1bcvo9n2nj4u38k84lo
Content-Type: application/json
Accept: application/json
 
{
"shipping_information": {
"carrier": "ACME",
"tracking_id": "12a3bcd45ef678gh9",
"invoice_number": "INV-45623",
"shipped_at": "2023-11-22T15:45:28+02:00",
"order_id": "ORD-56324"
}
}

The shipping_information is optional, but very helpful to resolve issues.

If everything is fine, the API responds with 200 OK and the full representation of the updated Payment Transaction:

Response
HTTP/1.1 200 OK
Content-Type: application/json
 
{
"object": "payment.transactions",
"id": "PCI_527D8SYFCT6GJ0994MNSY248W8MCM7",
// ...
"related_transactions": [],
// ...
"product": "Kauf auf Rechnung (Demo)",
"product_raw": "Kauf auf Rechnung (Demo)",
"zahlungsmittel_id": 0,
//
"created": "2023-11-23T16:45:42+01:00",
"completion_date": "2023-11-22T00:00:00+02:00",
"updated": "2023-11-23T16:45:46+01:00",
// ...
"details": {
"cleared": "open",
"status": 86,
"status_text": "abgeschlossen (Rechnung offen)",
"status_simple": 1,
"status_simple_text": "accepted",
"amount": 3685,
"description": "Bestellung am 23.11.2023 via secupay bei Secupay Test-Shop (264748)",
"description_raw": "Bestellung am 23.11.2023 via secupay bei Secupay Test-Shop (264748)"
},
// ...
"invoice_number": "INV-45623",
"order_id": "ORD-56324"
}

You can only call this when the payment transaction is awaiting the shipment.

You can also update the shipping information with PUT /Payment/Transactions/{id}/ShippingInformation:

Request
POST /api/v2/Payment/Transactions/PCI_527D8SYFCT6GJ0994MNSY248W8MCM7/ShippingInformation HTTP/1.1
Host: connect-testing.secuconnect.com
Authorization: Bearer qb56tjj1bcvo9n2nj4u38k84lo
Content-Type: application/json
Accept: application/json
 
{
"carrier": "ACME",
"tracking_id": "12a3bcd45ef678gh9",
"invoice_number": "INV-45623",
"order_id": "ORD-56324"
}

This can make sense for partial shipping. It will change the tracking information, but not the shipping date nor the due date.