Step 1 of 5 Configuration API step

Authenticate

Every Cobre API call carries a short-lived Bearer token (valid ~20 minutes). Exchange your API user credentials for a token and attach it to every later request.

POST https://api.cobre.co/v1/auth
Headers
Content-Typeapplication/json
Request body
{
"user_id": "cli_demo_co_01",User IDRequirediYour API user identifier issued by Cobre. Format: cli_xxxx.
"secret": "sk_live_2Hg8nP4qR7"SecretRequirediThe secret from your API key. Treat it like a password.
}
Response 201
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjbGlfZGVtb19jb18wMSJ9.Dm3kP9xR2vN7cL4wT8aH1gF6yJ0bZ5eQ",Access TokeniShort-lived bearer token. Attach as Authorization: Bearer on later calls.
"type": "Bearer",TypeiResource or movement type as defined by the Cobre API for this rail/product (e.g. breb_credit for Cobre Key payins).
"expiration_time": 1200Expiration TimeiToken lifetime in seconds.
}
Documentation for this step
AuthenticationAuthentication Guide
Step 2 of 5 Configuration API step

Subscribe to Webhook Events

Subscribe to money-movement status events so your system learns when each Fast Pay payout settles or fails — no polling. The same subscription also covers ACH if Cobre falls back.

POST https://api.cobre.co/v1/subscriptions
Headers
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjbGlfZGVtb19jb18wMSJ9.Dm3kP9xR2vN7cL4wT8aH1gF6yJ0bZ5eQ
Content-Typeapplication/json
Request body
{
"url": "https://yourplatform.co/webhooks/cobre",Notification URLRequirediYour HTTPS endpoint that receives Cobre webhook POSTs.
"description": "Payout lifecycle",DescriptioniA label to identify this subscription.
"events": [EventsiList of webhook event types this subscription listens to.
"money_movements.status.initiated",
"money_movements.status.processing",
"money_movements.status.completed",
"money_movements.status.failed",
"money_movements.status.rejected",
"accounts.balance.debit"
],
"event_signature_key": "WHsig_demo_44"Signature KeyRequirediA secret you provide; Cobre HMAC-signs each notification with it so you can verify authenticity.
}
Response 201
{
"id": "sub_PayoutDemo1",IdiUnique Cobre identifier for this resource.
"url": "https://yourplatform.co/webhooks/cobre",Notification URLRequirediYour HTTPS endpoint that receives Cobre webhook POSTs.
"description": "Payout lifecycle",DescriptioniA label to identify this subscription.
"events": [EventsiList of webhook event types this subscription listens to.
"money_movements.status.initiated",
"money_movements.status.processing",
"money_movements.status.completed",
"money_movements.status.failed",
"money_movements.status.rejected",
"accounts.balance.debit"
],
"event_signature_key": "******_44",Signature KeyRequirediA secret you provide; Cobre HMAC-signs each notification with it so you can verify authenticity.
"created_at": "2026-06-26T12:00:00Z"Created AtiTimestamp when the resource was created (ISO 8601, UTC).
}
Step 3 of 5 Fast Pay Payout API step

Create the Bank-Account Counterparty

For a payout to a Colombian bank account, register a cc (checking), ch (savings) or dp (deposit) counterparty with the account number and beneficiary institution. The same counterparty serves Fast Pay and ACH.

POST https://api.cobre.co/v1/counterparties
Headers
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjbGlfZGVtb19jb18wMSJ9.Dm3kP9xR2vN7cL4wT8aH1gF6yJ0bZ5eQ
Content-Typeapplication/json
Request body
{
"geo": "col",GeographyRequiredicol = Colombia.
"type": "cc",Account TypeRequiredicc = Cuenta Corriente (checking), ch = Ahorros (savings), dp = Depósito.
"alias": "Acme Vendor - Bank",AliasiDisplay name that helps identify it and clarify its purpose.
"metadata": {MetadataiCustom key-value metadata attached to the resource.
"counterparty_fullname": "Acme Vendor SAS",Beneficiary NameRequirediLegal name of the account holder.
"beneficiary_institution": "1007",Bank CodeRequirediBeneficiary institution code from Cobre's platform catalog (e.g. 1007 = Bancolombia).
"account_number": "1013555555",Account NumberRequirediThe destination bank account number.
"counterparty_id_type": "nit",ID TypeRequirediIdentification type of the beneficiary.
"counterparty_id_number": "9001234567"ID NumberRequirediThe beneficiary's identification number.
}
}
Response 201
{
"id": "cp_BankVendor10",IdiUnique Cobre identifier for this resource.
"geo": "col",GeographyRequiredicol = Colombia.
"type": "cc",Account TypeRequiredicc = Cuenta Corriente (checking), ch = Ahorros (savings), dp = Depósito.
"alias": "Acme Vendor - Bank",AliasiDisplay name that helps identify it and clarify its purpose.
"metadata": {MetadataiCustom key-value metadata attached to the resource.
"counterparty_fullname": "Acme Vendor SAS",Beneficiary NameRequirediLegal name of the account holder.
"beneficiary_institution": "1007",Bank CodeRequirediBeneficiary institution code from Cobre's platform catalog (e.g. 1007 = Bancolombia).
"account_number": "1013555555",Account NumberRequirediThe destination bank account number.
"counterparty_id_type": "nit",ID TypeRequirediIdentification type of the beneficiary.
"counterparty_id_number": "9001234567",ID NumberRequirediThe beneficiary's identification number.
"registered_account": falseRegistered AccountiCobre field at "metadata.registered_account" in this payload.
},
"created_at": "2026-06-26T12:30:00Z",Created AtiTimestamp when the resource was created (ISO 8601, UTC).
"updated_at": "2026-06-26T12:30:00Z"Updated AtiTimestamp of the last update (ISO 8601, UTC).
}
Documentation for this step
Create a CounterpartyManaging Counterparties
Step 4 of 5 Fast Pay Payout API step

Send the Fast Pay Payout

Create a Money Movement to the bank counterparty. Cobre routes it over Fast Pay (near real-time) when the destination bank supports it, automatically falling back to ACH (batch) otherwise — the response type tells you which rail was used ('fast_pay' here). checker_approval is false for immediate payout; set true for maker–checker (Money Movements Approval guide).

POST https://api.cobre.co/v1/money_movements
Headers
AuthorizationBearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjbGlfZGVtb19jb18wMSJ9.Dm3kP9xR2vN7cL4wT8aH1gF6yJ0bZ5eQ
Content-Typeapplication/json
idempotencypayout-fp-5568-001
Request body
{
"amount": 3000000,Amount (cents)RequirediAmount in cents. 3000000 = $30,000.00 COP.
"source_id": "acc_FundingCOP01",Source (funding balance)RequirediYour funding Cobre Balance.
"destination_id": "cp_BankVendor10",Destination (counterparty)RequirediThe bank-account counterparty from the previous step.
"metadata": {MetadataiCustom key-value metadata attached to the resource.
"description": "Supplier payout FastPay"DescriptionRequirediInformative description (max 40 chars).
},
"external_id": "payout-fp-5568"External IDiYour payout reference, echoed in the response and webhook.
}
Response 201
{
"id": "mm_FastPay5568",IdiUnique Cobre identifier for this resource.
"status": {StatusiLifecycle status object for the resource or movement.
"state": "initiated",StateiCurrent lifecycle state (e.g. completed, failed, rejected).
"code": "",CodeiProvider or Cobre status code when the state is failed or rejected.
"description": ""DescriptioniHuman-readable detail for the current status.
},
"metadata": {MetadataiCustom key-value metadata attached to the resource.
"description": "Supplier payout FastPay"DescriptionRequirediInformative description (max 40 chars).
},
"creator": "cli_demo_co_01",CreatoriActor that created the resource. On a Checkout-created Money Movement this is the r2p source counterparty (cp_…), not the API user.
"external_id": "payout-fp-5568",External IDiYour payout reference, echoed in the response and webhook.
"checker_approval": false,Checker ApprovaliWhen true, Cobre pauses at pending_approval and locks source funds until an approval/denial decision via Money Movement Approvals API.
"mm_approval_id": "",Mm Approval IdiMoney Movement Approval id (mma_…) when checker_approval is true — used for the decision endpoint.
"type": "fast_pay",TypeiResource or movement type as defined by the Cobre API for this rail/product (e.g. breb_credit for Cobre Key payins).
"geo": "col",GeoiGeography code (e.g. col = Colombia, mex = Mexico).
"source_id": "acc_FundingCOP01",Source (funding balance)RequirediYour funding Cobre Balance.
"destination_id": "cp_BankVendor10",Destination (counterparty)RequirediThe bank-account counterparty from the previous step.
"currency": "cop",CurrencyiISO currency code (e.g. cop, mxn).
"amount": 3000000,Amount (cents)RequirediAmount in cents. 3000000 = $30,000.00 COP.
"created_at": "2026-06-26T12:35:00Z",Created AtiTimestamp when the resource was created (ISO 8601, UTC).
"updated_at": "2026-06-26T12:35:00Z"Updated AtiTimestamp of the last update (ISO 8601, UTC).
}
⚡

Webhook outcomes — Money movement

Fires when the Fast Pay payout settles. If the bank had not supported Fast Pay, type would be 'ach' and settlement D+0/D+1 — but your reconciliation logic is identical. Funds were locked with a col_cb_debit during processing — see the Transaction tab.

Handle each terminal state in your webhook listener. Status codes reference the <a href="https://docs.cobre.com/money-movement-statuses-2032280m0" target="_blank" rel="noopener">Money Movement Statuses</a> guide. Cobre Balance transactions are covered in the <b>Transaction</b> tab.

Funds settled successfully. No error code is set (NA in the status guide). Use this webhook to mark the payment as paid in your system.

Event money_movements.status.completed
Headers
Content-Typeapplication/json
Example payload
{
"id": "ev_FastPay5568Cmp",IdiUnique Cobre identifier for this resource.
"event_key": "money_movements.status.completed",Event KeyiWebhook subscription key (e.g. money_movements.status.completed).
"created_at": "2026-06-26T12:35:21Z",Created AtiTimestamp when the resource was created (ISO 8601, UTC).
"content": {ContentiEvent-specific payload — same layout as the GET response for that resource.
"id": "mm_FastPay5568",IdiUnique Cobre identifier for this resource.
"status": {StatusiLifecycle status object for the resource or movement.
"state": "completed",StateiCurrent lifecycle state (e.g. completed, failed, rejected).
"code": "",CodeiProvider or Cobre status code when the state is failed or rejected.
"description": ""DescriptioniHuman-readable label or note.
},
"metadata": {MetadataiCustom key-value metadata attached to the resource.
"description": "Supplier payout FastPay"DescriptioniHuman-readable label or note.
},
"creator": "cli_demo_co_01",CreatoriActor that created the resource. On a Checkout-created Money Movement this is the r2p source counterparty (cp_…), not the API user.
"external_id": "payout-fp-5568",External IdiYour own reference echoed by Cobre for reconciliation.
"checker_approval": false,Checker ApprovaliWhen true, Cobre pauses at pending_approval and locks source funds until an approval/denial decision via Money Movement Approvals API.
"mm_approval_id": "",Mm Approval IdiMoney Movement Approval id (mma_…) when checker_approval is true — used for the decision endpoint.
"type": "fast_pay",TypeiResource or movement type as defined by the Cobre API for this rail/product (e.g. breb_credit for Cobre Key payins).
"geo": "col",GeoiGeography code (e.g. col = Colombia, mex = Mexico).
"source_id": "acc_FundingCOP01",Source IdiCobre id of the source account or counterparty.
"destination_id": "cp_BankVendor10",Destination IdiCobre id of the destination account or counterparty.
"currency": "cop",CurrencyiISO currency code (e.g. cop, mxn).
"amount": 3000000,AmountiAmount in cents — the last two digits are decimals.
"created_at": "2026-06-26T12:35:00Z",Created AtiTimestamp when the resource was created (ISO 8601, UTC).
"updated_at": "2026-06-26T12:35:21Z"Updated AtiTimestamp of the last update (ISO 8601, UTC).
}
}

Cobre or the rail could not process the movement. Inspect status.code and status.description. The list below is filtered to this Money Movement’s direction (payin, payout, or both):

Possible status codes
CodeDescriptionApplies to
F001Payment processing failed please try again.Payin and payout
F002NSF - Not Sufficient Funds in the designated account.Payin and payout
F004Daily transaction amount limit has been reached.Payin and payout
F005Amount exceeds the maximum allowed transaction limit.Payin and payout
F098Could not process the money movement at this time.Payin and payout
F099Could not process the money movement at this time.Payin and payout
Event money_movements.status.failed
Headers
Content-Typeapplication/json
Example payload
{
"id": "ev_FastPay5568Cmp",IdiUnique Cobre identifier for this resource.
"event_key": "money_movements.status.failed",Event KeyiWebhook subscription key (e.g. money_movements.status.completed).
"created_at": "2026-06-26T12:35:21Z",Created AtiTimestamp when the resource was created (ISO 8601, UTC).
"content": {ContentiEvent-specific payload — same layout as the GET response for that resource.
"id": "mm_FastPay5568",IdiUnique Cobre identifier for this resource.
"status": {StatusiLifecycle status object for the resource or movement.
"state": "failed",StateiCurrent lifecycle state (e.g. completed, failed, rejected).
"code": "F002",CodeiProvider or Cobre status code when the state is failed or rejected.
"description": "NSF - Not Sufficient Funds in the designated account."DescriptioniHuman-readable label or note.
},
"metadata": {MetadataiCustom key-value metadata attached to the resource.
"description": "Supplier payout FastPay"DescriptioniHuman-readable label or note.
},
"creator": "cli_demo_co_01",CreatoriActor that created the resource. On a Checkout-created Money Movement this is the r2p source counterparty (cp_…), not the API user.
"external_id": "payout-fp-5568",External IdiYour own reference echoed by Cobre for reconciliation.
"checker_approval": false,Checker ApprovaliWhen true, Cobre pauses at pending_approval and locks source funds until an approval/denial decision via Money Movement Approvals API.
"mm_approval_id": "",Mm Approval IdiMoney Movement Approval id (mma_…) when checker_approval is true — used for the decision endpoint.
"type": "fast_pay",TypeiResource or movement type as defined by the Cobre API for this rail/product (e.g. breb_credit for Cobre Key payins).
"geo": "col",GeoiGeography code (e.g. col = Colombia, mex = Mexico).
"source_id": "acc_FundingCOP01",Source IdiCobre id of the source account or counterparty.
"destination_id": "cp_BankVendor10",Destination IdiCobre id of the destination account or counterparty.
"currency": "cop",CurrencyiISO currency code (e.g. cop, mxn).
"amount": 3000000,AmountiAmount in cents — the last two digits are decimals.
"created_at": "2026-06-26T12:35:00Z",Created AtiTimestamp when the resource was created (ISO 8601, UTC).
"updated_at": "2026-06-26T12:35:21Z"Updated AtiTimestamp of the last update (ISO 8601, UTC).
}
}

The bank or payment network rejected the transaction. Inspect status.code. The list below is filtered to this Money Movement’s direction (payin, payout, or both):

Possible status codes
CodeDescriptionApplies to
R000Transaction rejected.Payin and payout
R001Inactive or blocked account.Payin and payout
R002Account and identification provided do not coincide.Payin and payout
R004ID not valid.Payout
R005Account does not exist.Payin and payout
R006Invalid account number.Payin and payout
R009Exceeds maximum allowed amount.Payin and payout
R010Account not authorized to debit.Payin and payout
R011Invalid Account type.Payout
R015Account not authorized to be credited.Payout
R018Payment rejected due invalid key.Payout
R023Payment cancelled by the user.Payin and payout
R024Exceeds maximum allowed number of transactions.Payout
R025Required information missing.Payout
R026Payment rejected due to unavailable bank services.Payin and payout
R027Account exceeds the maximum allowed transaction limit.Payin and payout
R034Account closed.Payin and payout
R085Bank processing error.Payout
Event money_movements.status.rejected
Headers
Content-Typeapplication/json
Example payload
{
"id": "ev_FastPay5568Cmp",IdiUnique Cobre identifier for this resource.
"event_key": "money_movements.status.rejected",Event KeyiWebhook subscription key (e.g. money_movements.status.completed).
"created_at": "2026-06-26T12:35:21Z",Created AtiTimestamp when the resource was created (ISO 8601, UTC).
"content": {ContentiEvent-specific payload — same layout as the GET response for that resource.
"id": "mm_FastPay5568",IdiUnique Cobre identifier for this resource.
"status": {StatusiLifecycle status object for the resource or movement.
"state": "rejected",StateiCurrent lifecycle state (e.g. completed, failed, rejected).
"code": "R018",CodeiProvider or Cobre status code when the state is failed or rejected.
"description": "Payment rejected due invalid key."DescriptioniHuman-readable label or note.
},
"metadata": {MetadataiCustom key-value metadata attached to the resource.
"description": "Supplier payout FastPay"DescriptioniHuman-readable label or note.
},
"creator": "cli_demo_co_01",CreatoriActor that created the resource. On a Checkout-created Money Movement this is the r2p source counterparty (cp_…), not the API user.
"external_id": "payout-fp-5568",External IdiYour own reference echoed by Cobre for reconciliation.
"checker_approval": false,Checker ApprovaliWhen true, Cobre pauses at pending_approval and locks source funds until an approval/denial decision via Money Movement Approvals API.
"mm_approval_id": "",Mm Approval IdiMoney Movement Approval id (mma_…) when checker_approval is true — used for the decision endpoint.
"type": "fast_pay",TypeiResource or movement type as defined by the Cobre API for this rail/product (e.g. breb_credit for Cobre Key payins).
"geo": "col",GeoiGeography code (e.g. col = Colombia, mex = Mexico).
"source_id": "acc_FundingCOP01",Source IdiCobre id of the source account or counterparty.
"destination_id": "cp_BankVendor10",Destination IdiCobre id of the destination account or counterparty.
"currency": "cop",CurrencyiISO currency code (e.g. cop, mxn).
"amount": 3000000,AmountiAmount in cents — the last two digits are decimals.
"created_at": "2026-06-26T12:35:00Z",Created AtiTimestamp when the resource was created (ISO 8601, UTC).
"updated_at": "2026-06-26T12:35:21Z"Updated AtiTimestamp of the last update (ISO 8601, UTC).
}
}

Payouts debit the source Cobre Balance while the movement is processing to lock funds. If the movement ends in failed, rejected, or canceled, Cobre posts a compensation credit (breb_credit or col_cb_credit). Payins credit the destination on completion only.

While the movement is in processing, Cobre debits the source Cobre Balance to lock the payout amount. Subscribe to accounts.balance.debit and money_movements.status.processing.

Event accounts.balance.debit
Headers
Content-Typeapplication/json
Example payload
{
"id": "ev_FastPay556Lk",IdiUnique Cobre identifier for this resource.
"event_key": "accounts.balance.debit",Event KeyiWebhook subscription key (e.g. money_movements.status.completed).
"created_at": "2026-06-26T12:35:00Z",Created AtiTimestamp when the resource was created (ISO 8601, UTC).
"content": {ContentiEvent-specific payload — same layout as the GET response for that resource.
"id": "trx_FastPay5568Lk",IdiUnique Cobre identifier for this resource.
"type": "col_cb_debit",TypeiResource or movement type as defined by the Cobre API for this rail/product (e.g. breb_credit for Cobre Key payins).
"account_id": "acc_FundingCOP01",Account IdiCobre Balance account id affected by the event.
"amount": -3000000,AmountiAmount in cents — the last two digits are decimals.
"previous_balance": 8000000,Previous BalanceiCobre field at "content.previous_balance" in this payload.
"current_balance": 5000000,Current BalanceiCobre field at "content.current_balance" in this payload.
"currency": "COP",CurrencyiISO currency code (e.g. cop, mxn).
"credit_debit_type": "debit",Credit Debit Typeicredit = funds in; debit = funds out.
"transaction_date": "2026-06-26T12:35:00Z",Transaction DateiTimestamp when the transaction was posted (ISO 8601, UTC).
"created_at": "2026-06-26T12:35:00Z",Created AtiTimestamp when the resource was created (ISO 8601, UTC).
"metadata": {MetadataiCustom key-value metadata attached to the resource.
"money_movement_id": "mm_FastPay5568",Money Movement IdiMoney Movement that generated this balance transaction.
"description": "Supplier payout FastPay",DescriptioniHuman-readable label or note.
"beneficiary_account_number": "",Beneficiary Account NumberiMetadata field "beneficiary_account_number" attached to the resource.
"tracking_key": ""Tracking KeyiNetwork tracking key for the payment (PSE ticket or Bre-B key).
}
}
}

On completion the locked funds are sent to the beneficiary. The processing debit remains on the ledger — no compensation credit is posted.

Event accounts.balance.debit
Headers
Content-Typeapplication/json
Example payload
{
"id": "ev_FastPay556Lk",IdiUnique Cobre identifier for this resource.
"event_key": "accounts.balance.debit",Event KeyiWebhook subscription key (e.g. money_movements.status.completed).
"created_at": "2026-06-26T12:35:00Z",Created AtiTimestamp when the resource was created (ISO 8601, UTC).
"content": {ContentiEvent-specific payload — same layout as the GET response for that resource.
"id": "trx_FastPay5568Lk",IdiUnique Cobre identifier for this resource.
"type": "col_cb_debit",TypeiResource or movement type as defined by the Cobre API for this rail/product (e.g. breb_credit for Cobre Key payins).
"account_id": "acc_FundingCOP01",Account IdiCobre Balance account id affected by the event.
"amount": -3000000,AmountiAmount in cents — the last two digits are decimals.
"previous_balance": 8000000,Previous BalanceiCobre field at "content.previous_balance" in this payload.
"current_balance": 5000000,Current BalanceiCobre field at "content.current_balance" in this payload.
"currency": "COP",CurrencyiISO currency code (e.g. cop, mxn).
"credit_debit_type": "debit",Credit Debit Typeicredit = funds in; debit = funds out.
"transaction_date": "2026-06-26T12:35:00Z",Transaction DateiTimestamp when the transaction was posted (ISO 8601, UTC).
"created_at": "2026-06-26T12:35:00Z",Created AtiTimestamp when the resource was created (ISO 8601, UTC).
"metadata": {MetadataiCustom key-value metadata attached to the resource.
"money_movement_id": "mm_FastPay5568",Money Movement IdiMoney Movement that generated this balance transaction.
"description": "Supplier payout FastPay",DescriptioniHuman-readable label or note.
"beneficiary_account_number": "",Beneficiary Account NumberiMetadata field "beneficiary_account_number" attached to the resource.
"tracking_key": ""Tracking KeyiNetwork tracking key for the payment (PSE ticket or Bre-B key).
}
}
}

If the movement reaches a terminal failed, rejected, or canceled state, Cobre credits the source Cobre Balance to release the lock (breb_credit for Bre-B, col_cb_credit for bank rails).

Event accounts.balance.credit
Headers
Content-Typeapplication/json
Example payload
{
"id": "ev_FastPay556Cp",IdiUnique Cobre identifier for this resource.
"event_key": "accounts.balance.credit",Event KeyiWebhook subscription key (e.g. money_movements.status.completed).
"created_at": "2026-06-26T12:35:21Z",Created AtiTimestamp when the resource was created (ISO 8601, UTC).
"content": {ContentiEvent-specific payload — same layout as the GET response for that resource.
"id": "trx_FastPay5568Cp",IdiUnique Cobre identifier for this resource.
"type": "col_cb_credit",TypeiResource or movement type as defined by the Cobre API for this rail/product (e.g. breb_credit for Cobre Key payins).
"account_id": "acc_FundingCOP01",Account IdiCobre Balance account id affected by the event.
"amount": 3000000,AmountiAmount in cents — the last two digits are decimals.
"previous_balance": 0,Previous BalanceiCobre field at "content.previous_balance" in this payload.
"current_balance": 3000000,Current BalanceiCobre field at "content.current_balance" in this payload.
"currency": "COP",CurrencyiISO currency code (e.g. cop, mxn).
"credit_debit_type": "credit",Credit Debit Typeicredit = funds in; debit = funds out.
"transaction_date": "2026-06-26T12:35:21Z",Transaction DateiTimestamp when the transaction was posted (ISO 8601, UTC).
"created_at": "2026-06-26T12:35:21Z",Created AtiTimestamp when the resource was created (ISO 8601, UTC).
"metadata": {MetadataiCustom key-value metadata attached to the resource.
"money_movement_id": "mm_FastPay5568",Money Movement IdiMoney Movement that generated this balance transaction.
"description": "Supplier payout FastPay",DescriptioniHuman-readable label or note.
"tracking_key": "",Tracking KeyiNetwork tracking key for the payment (PSE ticket or Bre-B key).
"sender_name": "",Sender NameiMetadata field "sender_name" attached to the resource.
"sender_id": "",Sender IdiMetadata field "sender_id" attached to the resource.
"sender_account_number": ""Sender Account NumberiMetadata field "sender_account_number" attached to the resource.
}
}
}
Step 5 of 5 Fast Pay Payout Reconciliation

Reconcile the Fast Pay Payout

Fast Pay payouts are Money Movements, so reconciliation keys on mm_id + external_id from the completion webhook. The response/webhook type field (fast_pay vs ach) tells you which rail Cobre selected.

Mapping the webhook payload from an earlier step onto Your Ledger. No API call is made — this step closes the loop in your own system.

Cobre field & valueYour Ledger field
content.external_id
payout-fp-5568
→
payout_reference
content.id
mm_FastPay5568
→
cobre_mm_id
content.type
fast_pay
→
rail_used
fast_pay or ach — the rail Cobre selected.
content.status.state
completed
→
payout_status
content.amount
3000000
→
paid_amount_cents