Wires

Originate a payment

11min
in this tutorial, you'll learn how to ✅ originate an outbound wire transfer ✅ cancel an outbound wire transfer ✅ originate an outbound international wire transfer if you are new to wire transfers we recommend you read our wires docid\ zaxecgz253epmvur5l4eh before starting this tutorial the tutorial assumes you have a knowledge of apis and how they work for more information on sending api calls, see the api basics docid\ hjr4y6ml96zuyj6trytom page the tutorial uses this api endpoint api description wires docid 2jf5lvztusac2jqpi9pjf sends an outbound wire transfer wires docid 2jf5lvztusac2jqpi9pjf cancels a wire transfe important do not poll the apis for status updates and reconciliation purposes incorporate webhooks into the payment reconciliation process the tutorial uses these webhooks webhook description wire payment sent outbound wire has been transmitted to the federal reserve and has been successfully acknowledged imad number is now available wire payment received inbound wire payment received successfully wire payment rejected outbound wire could not be processed due to compliance reasons or was rejected by the federal reserve wire payment canceled outbound wire transfer was canceled before you begin make sure you have bank rails docid\ kbym9o05dwmdjsf8k7lzi partner id master account number register the relevant webhook events to receive the webhook events for this tutorial you need to banking and payments docid\ dgnysfx9f7pnesmuxnwsp each specific webhook event type once you are registered, the event objects are sent to the registered urls the event object contains a list of resource identifiers used to download details of each event originate a outbound payment call post /wires/v1/payments to send the $100 wire transfer in this example, we supply values for the following required attributes account number 2342123458 (originator's account number) request and response codes docid\ grpkohavnzipkq9tdkoc7 ctr receiver routing number 026009593 (fedwire routing number) beneficiary information request and response codes docid\ grpkohavnzipkq9tdkoc7 d identifier 4289341024 (beneficiary's account number) name miguel nelson amount 10000 (amount in usd with no decimal point between the dollars and cents) purpose consulting fee important we strongly recommend that you include an idempotency key in your request header to provide duplicate protection should the payment fail read more about idempotency keys idempotency docid\ jiv0q1 cymjqqger3ijmp sample request post /wires/v1/payments { "accountnumber" "2342123458", "businessfunctioncode" "ctr", "receiverroutingnumber" "026009593", "beneficiary" { "idcode" "d", "identifier" "4289341024", "name" "miguel nelson", "address1" "250 kuhn highway", "address2" "grover, nc 28073" }, "beneficiaryreference" "invoice a523", "amount" 10000, "purpose" "consulting fee" } a successful api call returns a json response with the details of your originated payment acme co, as the originator , sent a wire transfer direction outbound , in the amount of $100 reflected in amount as 10000 , to miguel nelson, the receiver , whose account is at bk amer nyc sample response { "id" "30423521 52e2 4329 b8f6 ada3011806f1", "accountnumber" "2342123458", "referenceid" "w21025mv1wa", "direction" "outbound", "paymenttype" "transfer", "source" "api", "status" "created", "posting" "pending", "amount" 10000, "currency" "usd", "purpose" "consulting fee", "businessfunctioncode" "ctr", "typecode" "1000", "senderroutingnumber" "021214891", "sendername" "cross river bank", "senderreference" "w21025mv1wa", "receiverroutingnumber" "026009593", "receivername" "bk amer nyc ", "originatingfi" { "idcode" "f", "identifier" "021214891", "name" "cross river bank", "address1" "885 teaneck rd", "address2" "teaneck nj 07666", "address3" "us" }, "originator" { "idcode" "d", "identifier" "2342123458", "name" "acme co", "address1" "400 business street", "address2" "new york ny 10025" }, "beneficiary" { "idcode" "d", "identifier" "4289341024", "name" "miguel nelson", "address1" "250 kuhn highway", "address2" "grover, nc 28073" }, "beneficiaryreference" "invoice a523", "wasreversed" false, "isinternational" false, "createdat" "2021 01 25t17 13 27 6503996 05 00", "effectivedate" "2021 01 25t00 00 00 05 00", "originalpaymentid" "30423521 52e2 4329 b8f6 ada3011806f1", "partnerid" "bf1baac0 1ae9 45ed ade6 55baf1ae19a6", "productid" "3941dec4 bd4b 4f3e af7a bc6d86b8a0dc", "lastmodifiedat" "2021 01 25t17 13 27 6573998 05 00", "postingcode" "ok" } confirm payment after originating the payment, its status changes to pending or hold for up to several hours a pending status lets you know that the payment request is created but has not been batched for release to the federal reserve the batching process occurs several times a day a hold status indicates that the payment request is in review and has not yet been approved for release to the federal reserve acknowledgement of the payment by the fed triggers the wire payment sent event this indicates successful acceptance of the payment by the federal reserve and the availability of an imad the payment id provided in the response body of the payment origination request ( id ) appears in the resources object of the wire payment sent event for ease of identification in this case the payment id is 30423521 52e2 4329 b8f6 ada3011806f1 sample wire payment sent event { "id" "dab167cf 3d77 45ed ad85 ada30118fc11", "eventname" "wire payment sent", "status" "pending", "partnerid" "30dee145 b6a2 4058 8dc3 ac4000dee91f", "createdat" "2021 01 25t18 03 01 887 04 00", "resources" \[ "wires/v1/payments/30423521 52e2 4329 b8f6 ada3011806f1" ], "details" \[] } cancel an outbound payment you can cancel a wire transfer if it has not reached batch status, which tells you that the payment is in the process of being released to the fed specifically, you can cancel a wire transfer with a pending or hold status call post /wires/v1/payments/{id}/cancel for the id attribute use the payment id returned in the response to post /wires/v1/payments in our case, we'll use 30423521 52e2 4329 b8f6 ada3011806f1 sample request curl x post \ header 'accept application/json' \ header 'authorization bearer \<token>' 'https //sandbox crbcos com/wires/v1/payments/\<p>sample request\</p>curl x get \ header 'accept application/json' \ header 'authorization bearer \<token>' 'https //sandbox crbcos com/wires/v1/payments/4d4c60b2 e073 409d bc94 aff000043fcb/cancel' a successful api call returns a json response with the details of your canceled payment and shows a status value of canceled sample response { "id" "30423521 52e2 4329 b8f6 ada3011806f1", "accountnumber" "2342123458", "referenceid" "w21025mv1wa", "direction" "outbound", "paymenttype" "transfer", "source" "api", "status" "canceled", "posting" "posted", "amount" 10000, "currency" "usd", "purpose" "consulting fee", "businessfunctioncode" "ctr", "typecode" "1000", "senderroutingnumber" "021214891", "sendername" "cross river bank", "senderreference" "w21025mv1wa", "receiverroutingnumber" "026009593", "receivername" "bk amer nyc ", "originatingfi" { "idcode" "f", "identifier" "021214891", "name" "cross river bank", "address1" "885 teaneck rd", "address2" "teaneck nj 07666", "address3" "us" }, "originator" { "idcode" "d", "identifier" "2342123458", "name" "acme co", "address1" "400 business street", "address2" "new york ny 10025" }, "beneficiary" { "idcode" "d", "identifier" "4289341024", "name" "miguel nelson", "address1" "250 kuhn highway", "address2" "grover, nc 28073" }, "beneficiaryreference" "invoice a523", "wasreversed" false, "isinternational" false, "createdat" "2021 01 25t17 13 27 6503996 05 00", "canceledat" "2021 01 25t19 04 10 7921285 05 00", "effectivedate" "2021 01 25t00 00 00 05 00", "originalpaymentid" "30423521 52e2 4329 b8f6 ada3011806f1", "partnerid" "bf1baac0 1ae9 45ed ade6 55baf1ae19a6", "productid" "3941dec4 bd4b 4f3e af7a bc6d86b8a0dc", "lastmodifiedat" "2021 01 25t17 13 27 6573998 05 00", "postingcode" "ok" } the wire payment canceled event also communicates the payment cancellation, just like the response to calling post /wires/v1/payments/{id}/cancel the payment id provided in the response body of the payment origination request ( id ) appears in the details object of the wire payment canceled event for ease of identification, along with other transfer details in this case the payment id is 30423521 52e2 4329 b8f6 ada3011806f1 note that the pending status refers to the webhook and not the payment sample wire payment canceled event { "id" "ff1b5fa5 ae3d 48eb b389 b12901195195", "eventname" "wire payment canceled", "status" "pending", "partnerid" "1e5d3f04 ae24 4af6 9e30 aecf012b99dd", "createdat" "2021 03 04t12 04 15 003 05 00", "resources" \[ "wires/v1/payments/30423521 52e2 4329 b8f6 ada3011806f1" ], "details" \[ { "paymentid" "30423521 52e2 4329 b8f6 ada3011806f1", "accountnumber" "2342123458", "direction" "outbound", "imad" null, "omad" null, "paymenttype" "transfer", "purpose" "consulting fee", "amount" "10000", "clientidentifier" null, "originatingfiname" "34115033", "originatingfiidentifier" "021214891", "originatorname" "acme co", "originatoridentifier" "2342123458", "originatoraddress1" "400 business street", "originatoraddress2" "", "originatoraddress3" "new york ny 10025", "beneficiaryfiname" null, "beneficiaryfiidentifier" null, "beneficiaryname" "miguel nelson", "beneficiaryidentifier" "4289341024", "beneficiaryaddress1" "250 kuhn highway", "beneficiaryaddress2" "grover, nc 28073" "beneficiaryaddress3" null, "beneficiaryreference" "invoice a523", "senderreference" "w21025mv1wa", "originatortobeneficiary1" null, "originatortobeneficiary2" null, "originatortobeneficiary3" null, "originatortobeneficiary4" null, "coretransactionid" "fa7ae94e 0fc0 4c4f 9680 b129011945d8" } ] }