Card callbacks and notifications

Card callbacks helps our clients to do card bussiness. Once our customer returns a decision, Build finalizes the response back to the card network, generates the ISO 8583 message, and returns the ISO 8583 message back to the card network to complete the card payment process.

Prerequisites

To use callbacks and notifications with Build as the issuer processor, Build must enable HTTP connections with your system. Customers are required to provide these API callback URLs.


Authorizations

When Build receives an authorization message for a card, a call will be made to this Authorization API to process the request. Build's customer should decide whether to do this authorization and response the answer in the request body.

url:{authorization callback url on your end}

method:PUT

produces:application/x-www-form-urlencoded,application/json

consumes:*/*

Note:

Status:

codedescriptionschema
199OKBuildCallbackResp

Request payload:

{
  "type": "refund",
  "billing_amount": 100,
  "acceptor_name": "acceptorName#1",
  "transaction_source": "online",
  "card_id": "ETLPzgGfSzgoe",
  "id": "ETLPzgGfSzDTTLQuKEvVlssjj.",
  "reversal": 0,
  "created_at": 0,
  "updated_at": 0
}

Response Params:

namedescriptiontypeschema
responseCoderesponse code,0 for success ,other none-zero values indicate failureinteger(int32)integer(int32)
messagestring
externalReferencestring

Response Example:

{
	"response_code": 0,
	"message": "",
	"external_reference": ""
}

Reversals

When Build receives a Reversal message for a card, a call will be made to this Reversal API to process the request.

url:Callback url for reversals on your end

method:PUT

produces:application/x-www-form-urlencoded,application/json

consumes:*/*

Note:

Status:

codedescriptionschema
200OKBuildCallbackResp

Response Params:

namedescriptiontypeschema
responseCoderesponse code,0 for success ,other none-zero values indicate failureinteger(int32)integer(int32)
messagestring
externalReferencestring

Request payload for Reversal:

{
  "id": "ETLPzgGfSzWQftUdvTMQqhqfr",
  "type": "PURCHASE",
  "callback_type": "REVERSAL",
  "reversal_type": "AUTHORIZATION",
  "fee_amount": 77.7,
  "billing_currency": "AUD",
  "billing_amount": 77.70,
  "acquirer_currency": "AUD",
  "acquirer_amount": 77.70,
  "compliance_currency": "AUD",
  "compliance_amount": -77.70,
  "acceptor_name": "401 Congress",
  "transaction_source": "Online",
  "partner_transaction_type": "load",
  "card_id": "ETLPzgGfSzg5oq",
  "authorization_id": "ETLPzgGfSzDTTLQuKEvVlssjo9-",
  "auth_code": "815163",
  "acquiring_institution_id": "123456",
  "card_present": "false",
  "card_acceptor_country_code": "AU",
  "card_acceptor_city": "Austin",
  "mcc": "1234",
  "pos_entry_mode": "02",
  "pos_condition": "00001",
  "reversal": 1,
  "createdAt": 0,
  "updatedAt": 0
}
Please note: If the reversal_type is AUTHORIZATION, it indicates a reversal of an authorization. In this case, you should take actions to unfreeze the related funds. If the reversal_type is TRANSACTION, it signifies a reversal of a transaction. In such instances, you should take actions to adjust the balance of your user accordingly.


Transactions

When Build receives a Clearing message for a card, a call will be made to this Transactions API to process the request.

url:Callback url for transactions on your end

method:PUT

produces:application/x-www-form-urlencoded,application/json

consumes:*/*

Note:

Status:

codedescriptionschema
200OKBuildCallbackResp

Response Params:

namedescriptiontypeschema
responseCoderesponse code,0 for success ,other values indicate failureinteger(int32)integer(int32)
messagestring
externalReferencestring

Request payload for Purchase:

{
  "id": "ETLPzgGfSzWQftUdvTMQqhphh",
  "type": "purchase",
  "callback_type": "transaction",
  "fee_amount": 0.0,
  "billing_amount": 0,
  "acquirer_currency": "AUD",
  "acquirer_amount": 100.00,
  "compliance_currency": "AUD",
  "compliance_amount": -100.00,
  "acceptor_name": "",
  "transaction_source": "Online",
  "partner_transaction_type": "load",
  "card_id": "ETLPzgGfSzg5oq",
  "auth_code": "256434",
  "acquiring_institution_id": "00000000000",
  "card_present": "false",
  "mcc": "0000",
  "pos_entry_mode": "D10100C910",
  "pos_condition": "0000",
  "reversal": 0,
  "createdAt": 0,
  "updatedAt": 0
}

Request payload for Refund:

{
  "id": "ETLPzgGfSzWQftUdvTMQqhphj",
  "type": "refund",
  "callback_type": "transaction",
  "fee_amount": 0.0,
  "billing_amount": 0,
  "acquirer_currency": "AUD",
  "acquirer_amount": 111.00,
  "compliance_currency": "AUD",
  "compliance_amount": 111.00,
  "acceptor_name": "",
  "transaction_source": "Online",
  "partner_transaction_type": "withdraw",
  "card_id": "ETLPzgGfSzg5oq",
  "auth_code": "256434",
  "acquiring_institution_id": "00000000000",
  "card_present": "false",
  "mcc": "0000",
  "pos_entry_mode": "D10100C910",
  "pos_condition": "0000",
  "reversal": 0,
  "createdAt": 0,
  "updatedAt": 0
}

Response Example:

{
	"response_code": 0,
	"message": "",
	"external_reference": ""
}

Business instructions on transactions

  • If the card transaction results in a debit (for example, a purchase or withdrawal) from a customer account, the partnerTransactionType is a load. Your system debits funds from the customer account in your system.

  • If the card transaction results in a credit (for example, a refund or chargeback) to a customer account, the partnerTransactionType is a withdraw. Your system debits funds to the customer account in your system.

  • If the transaction is a reversal (reversal=1 and callbackType="reversal"), then previous authorization("authorization_id" is the relevant authorization) is reversed.


Notifications

Build supports several types of system-generated notifications, which are similar to trigger alerts that are sent in response to a specific user action or event. Each notification contains an event type and some other relevant fields.

url:Callback url for notifications on your end

method:POST

produces:application/x-www-form-urlencoded,application/json

Event Types

  • CardApplicationStateEvent

When card applications' states change, this kind of notification will be sent. Request body example:

{
  "event_type": "CardApplicationStateEvent",
  "application_id": "ETLPzgGfSzDtuPNfeTMQqhmnq",
  "status": "SUBMITTED",
  "timestamp": 1690360293489
}
  • CardStateEvent

When cards' states change, this kind of notification will be sent. Request body example:

{
  "event_type": "CardStateEvent",
  "card_id": "ETLPzgGfSzg5mq",
  "application_id": "ETLPzgGfSzDtuPNfeTMQqhmnq",
  "status": "NEW",
  "timestamp": 1690360288486
}